// pages/resume/resume.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    recruitID:'',
    recruit:null,
    enclosureTmp:'',//选择附件的临时位置
    enclosureCloudUrl:'',//选择附件的临时位置返回附件cloudurl
    fileName:'',//文件名
    fileSize:null, //文件大小
    items: [
      { name: '男', value: '男',checked: 'true' },
      { name: '女', value: '女'},
      
    ],
    radioValue:'男',
  },
  //单选框
  radioChange: function (e) {
    // console.log('radio发生change事件，携带value值为：', e.detail.value)
    this.setData({
      radioValue:e.detail.value,
    })
    console.log(this.data.radioValue)
    
  },
  //选择附件
  chooseMessageFile:function(e){
    var that = this;
    wx.chooseMessageFile({
      count: 1,  //能选择文件的数量
      type: 'file', //能选择文件的类型,我这里只允许上传文件.还有视频,图片,或者都可以
      success(res) { 
        // console.log('文件res',res)
        var size = res.tempFiles[0].size;
        var filename = res.tempFiles[0].path;
        var newfilename = filename + ""; 
        let ext = newfilename.substr(newfilename.lastIndexOf(".")).replace('.', ''); //获取文件名后缀
        // console.log(ext)
       
        if (size > 4194304||(ext!='docx'&&ext!='pdf'&&ext!='doc')){ //我还限制了文件的大小和具体文件类型 ||(ext!='docx'&&ext!='pdf')
          wx.showToast({
          title: '文件大小不能超过4MB,格式必须为pdf、docx、doc！',
          icon: "none",
          duration: 2000,
          mask: true
          })
        }else{
          that.setData({
            enclosureTmp: res.tempFiles[0].path, //将文件的路径保存在页面的变量上,方便 wx.uploadFile调用
            fileName:res.tempFiles[0].name, //回显文件名
          })
          console.log('enclosureTmp',that.data.enclosureTmp)
        }
      }
    })
  },
  isTelephone:function(telephone){
    // console.log('电话号码为',telephone)
    var mobile = /^[1][3,4,5,7,8][0-9]{9}$/;
    return mobile.exec(telephone);
  },
  isEmail:function(email){
    // console.log('电话号码为',telephone)
    var mobile =/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
    return mobile.test(email);
  },
  //根据招募id修改招募已经申请的的人数
  updateApplicationNumById:function(){
    console.log('this.data.recruitID',this.data.recruitID)
    wx.cloud.callFunction({
      name:'recruit',
      data:{
        parameter: 'updateApplicationNumById',
        id:this.data.recruitID,
      }
    }).then(res=>{
      console.log('申请数量增加成功',res)
    }).catch(err=>{
      console.log('申请数量增加失败',err)
    })
  },

  formSubmit:function(e){
      var sex = this.data.radioValue
      let that = this
      console.log ("表单输入",sex)
      if (e.detail.value.name==='') {
        wx.showToast({
          icon: 'none',
          title: '姓名不能为空'
        });
      } else if (e.detail.value.college===''){
        wx.showToast({
          icon: 'none',
          title: '学院不能为空'
        });
      }else if (e.detail.value.major===''){
        wx.showToast({
          icon: 'none',
          title: '专业班级不能为空'
        });
      }else if (e.detail.value.studentID===''){
        wx.showToast({
          icon: 'none',
          title: '学号不能为空'
        });
      }else if (e.detail.value.telephone===''){
        wx.showToast({
          icon: 'none',
          title: '手机号不能为空'
        });
      }else if (!this.isTelephone(e.detail.value.telephone)){
        wx.showToast({
          icon: 'none',
          title: '联系电话输入格式不对'
        });
      }else if (e.detail.value.email===''){
        wx.showToast({
          icon: 'none',
          title: '邮箱不能为空'
        });
      }else if (!this.isEmail(e.detail.value.email)){
          wx.showToast({
            icon: 'none',
            title: '邮箱格式不对'
          });
      }
      // else if (that.data.enclosureTmp===''){
      //     wx.showToast({
      //       icon: 'none',
      //       title: '简历不能为空'
      //     });
      // }
      else{
        wx.showLoading({
          title: '上传中',
        })
        let promiseArr = [];
        //上传附件
        // if(判断简历是否为空)
        promiseArr.push(new Promise((reslove, reject) => {
          let enclosureTmp = this.data.enclosureTmp;
          let suffix = /\.\w+$/.exec(enclosureTmp)[0]; //正则表达式返回文件的扩展名
          var that = this
          var timestamp = Date.parse(new Date());
          wx.cloud.uploadFile({
            cloudPath:'file/resume/'+timestamp+suffix,
            filePath:enclosureTmp,
            success:res=>{
              that.setData({
                enclosureCloudUrl: res.fileID
              });
              console.log(that.data.enclosureCloudUrl) //输出上传后图片的返回地址
              reslove();
            },
            fail(err){
              console.log(res)
            }
          })
        }));
        Promise.all(promiseArr).then(res => { //等数组都做完后做then方法
          wx.cloud.callFunction({
            name:'applicant',
            data:{
              parameter: 'addApplicant',
              name : e.detail.value.name,
              sex: sex,
              college:e.detail.value.college,
              major:e.detail.value.major,
              studentID:e.detail.value.studentID,
              telephone:e.detail.value.telephone,
              email:e.detail.value.email,
              // recruitState:2,
              enclosure:that.data.enclosureCloudUrl,
              recruitId:that.data.recruitID,
              recruit:that.data.recruit,
            }
            ,
            success: res => {
              // wx.hideLoading()
              wx.showToast({
                duration:1500,
                icon:'success',
                title: '发布成功',
              })
              console.log('发布成功', res)
              // 招募申请的数量 + 1
              that.updateApplicationNumById()
              console.log('招募申请的数量 + 1')

              wx.showModal({
                title: '提示',
                content: '报名已经成功提交，是否订阅录取通知（订阅后我们将通过微信通知获取情况）',
                success: function (res) {
                  if (res.confirm) {//这里是点击了确定以后
                    wx.requestSubscribeMessage({
                      tmplIds: ['sy27sJ0XfFqR1yWmU0wOZ5hEZVe3RmvRREUAA00Yc80'],
                      success(res){
                        console.log('授权成功')
                      },
                      fail(ers){
                        console.log('授权失败')
                      }
                    })
                    wx.navigateBack({
                      delta: 1,
                      success:function(e){
                        let page = getCurrentPages().pop();
                        if (page == undefined || page == null){
                          return;
                        }else{
                          console.log('id',that.data.recruit._id)
                          page.onLoad(that.data.recruit._id);
                        }
                      }
                    })
                  } else {//这里是点击了取消以后

                    wx.navigateBack({
                      delta: 1,
                      success:function(e){
                        let page = getCurrentPages().pop();
                        if (page == undefined || page == null){
                          return;
                        }else{
                          console.log('id',that.data.recruit._id)
                          page.onLoad(that.data.recruit._id);
                        }
                      }
                    })
                  }
                }
              })
            },
            fail: err => {
              // wx.hideLoading()
              wx.showToast({
                duration:2500,
                icon: 'none',
                title: '网络不给力....'
              })
              console.error('发布失败', err)
              //发布失败后，删除之前上传的垃圾文件。

            }
          })
         
        })
      }
     },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({
      title: '加载中',
    })
    //初始化页面
    const indexRecruitAll = wx.getStorageSync('indexRecruitAll')
  //  判断是否有缓存
    console.log('缓存是否存在',indexRecruitAll)
    
    if(indexRecruitAll!=null){
       // 利用缓存加载，详情页面 
       for (let index = 0; index < indexRecruitAll.length; index++) {
        if(indexRecruitAll[index]._id==options.id){
          this.setData({
            recruit:indexRecruitAll[index],
            recruitID:indexRecruitAll[index]._id,
          })
          console.log('本地缓存匹配成功',indexRecruitAll[index])
          break
        }
      }
      // 缓存存在但是匹配失败了，就去访问数据库
      if(this.data.recruit==null){
        // 利用数据库加载
        console.log('进来了')
        wx.cloud.callFunction({
         name:'getRecruitById',
         data:{
           id:options.id
         }
       }).then(res=>{
         console.log('数据库查询招募详情信息成功',res)
         this.setData({
          recruit:res.result.data[0],
          recruitID:options.id,
        })
         
       }).catch(err=>{
         console.log(err)
       })
     }
      wx.hideLoading()
    }else{
      wx.cloud.callFunction({
        name:'getRecruitById',
        data:{
          id:options.id
        }
      }).then(res=>{
        console.log(res)
        this.setData({
          recruit:res.result.data[0],
          recruitID:options.id,
        })
        console.log("招募xiangq",this.data.recruit)
        wx.hideLoading()
      }).catch(err=>{
        console.log(err)
        wx.hideLoading()
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})